﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System.Collections.Specialized;

namespace Lcsoft.UrlRewriter.Transforms
{
	/// <summary>
	/// 表示静态映射数据转换器。
	/// </summary>
	public sealed class StaticMappingTransform : IRewriteTransform
	{
		private readonly StringDictionary _map;

		/// <summary>
		/// 初始化 <see cref="StaticMappingTransform"/> 类的新实例。
		/// </summary>
		/// <param name="name">要转换的数据在映射表中的键名。此键名是大小写敏感的。</param>
		/// <param name="map">映射表。</param>
		public StaticMappingTransform(string name, StringDictionary map)
		{
			this.Name = name;
			this._map = map;
		}

		#region IRewriteTransform Members

		/// <summary>
		/// 应用数据转换。
		/// </summary>
		/// <param name="input">包含待转换的数据的 <see cref="System.String"/>。</param>
		/// <returns>返回包含转换后的数据的 <see cref="System.String"/>。</returns>
		public string ApplyTransform(string input) { return this._map[input]; }

		/// <summary>
		/// 返回数据转换器的名称。
		/// </summary>
		public string Name { get; private set; }

		#endregion
	}
}
